#!/bin/bash

declare -a languages=('en_US.UTF-8' "English"             \
                      'eo'          "Esperanto"           \
                      'es_ES.UTF-8' "Spanish"             \
                      'fr_FR.UTF-8' "French"              \
                      'gl_ES.UTF-8' "Galego"              \
                      'it_IT.UTF-8' "Italian"             \
                      'pl_PL.UTF-8' "Polish"              \
                      'pt_BR.UTF-8' "Brazilian Portuguese")
declare -a keymaps=('af'          "Afrikaans-lang"   \
                    'al'          "Albanian"         \
                    'am'          "Amharic"          \
                    'ara'         "Arabic"           \
                    'at'          "at"               \
                    'au'          "au"               \
                    'az'          "Azerbaijani"      \
                    'ba'          "Bashkir"          \
                    'be'          "Belarusian"       \
                    'bg'          "Bulgarian"        \
                    'bn'          "Bihari-languages" \
                    'br'          "Breton"           \
                    'brai'        "brai"             \
                    'bt'          "bt"               \
                    'bw'          "bw"               \
                    'by'          "by"               \
                    'ca'          "Catalan"          \
                    'cd'          "cd"               \
                    'ch'          "Chamorro"         \
                    'cm'          "cm"               \
                    'cn'          "cn"               \
                    'cz'          "Czech"            \
                    'de'          "German"           \
                    'dk'          "dk"               \
                    'dz'          "Dzongkha"         \
                    'ee'          "Ewe"              \
                    'epo'         "Esperanto"        \
                    'es'          "Spanish"          \
                    'et'          "Estonian"         \
                    'fi'          "Finnish"          \
                    'fo'          "Faroese"          \
                    'fr'          "French"           \
                    'gb'          "gb"               \
                    'ge'          "ge"               \
                    'gh'          "gh"               \
                    'gn'          "Guaraní"          \
                    'gr'          "gr"               \
                    'hr'          "Croatian"         \
                    'hu'          "Hungarian"        \
                    'id'          "Indonesian"       \
                    'ie'          "Interlingue"      \
                    'il'          "il"               \
                    'in'          "in"               \
                    'iq'          "iq"               \
                    'ir'          "ir"               \
                    'is'          "Icelandic"        \
                    'it'          "Italian"          \
                    'jp'          "Japanese"         \
                    'ke'          "ke"               \
                    'kg'          "Kongo"            \
                    'kh'          "kh"               \
                    'kr'          "Kanuri"           \
                    'kz'          "kz"               \
                    'la'          "Latin"            \
                    'latam'       "Latin-American"   \
                    'lk'          "lk"               \
                    'lt'          "Lithuanian"       \
                    'lv'          "Latvian"          \
                    'ma'          "ma"               \
                    'mao'         "Maori"            \
                    'md'          "md"               \
                    'me'          "me"               \
                    'mk'          "Macedonian"       \
                    'ml'          "Malayalam"        \
                    'mm'          "mm"               \
                    'mn'          "Mongolian"        \
                    'mt'          "Maltese"          \
                    'mv'          "mv"               \
                    'my'          "Burmese"          \
                    'nec_vndr/jp' "nec_vndr/jp"      \
                    'ng'          "Ndonga"           \
                    'nl'          "Dutch"            \
                    'no'          "Norwegian"        \
                    'np'          "np"               \
                    'ph'          "ph"               \
                    'pk'          "pk"               \
                    'pl'          "Polish"           \
                    'pt'          "Portuguese"       \
                    'ro'          "Romanian"         \
                    'rs'          "rs"               \
                    'ru'          "Russian"          \
                    'se'          "Northern-Sami"    \
                    'si'          "Sinhala"          \
                    'sk'          "Slovak"           \
                    'sn'          "Shona"            \
                    'sy'          "sy"               \
                    'tg'          "Tajik"            \
                    'th'          "Thai"             \
                    'tj'          "tj"               \
                    'tm'          "tm"               \
                    'tr'          "Turkish"          \
                    'tw'          "Twi"              \
                    'tz'          "tz"               \
                    'ua'          "ua"               \
                    'us'          "English"          \
                    'uz'          "Uzbek"            \
                    'vn'          "vn"               \
                    'za'          "Zhuang"           )


### Comprobe if language was selected ###

language=$(grep 'LANG=' /root/.codecheck | cut -d '=' -f 2)
if   [ "${language// /}" == "_UNDEFINED_" ]
then language=$(dialog --stdout --no-tags --no-cancel --timeout 10                 \
                       --backtitle "System language selection"                     \
                       --menu      "Choose your language:" 15 40 10 ${languages[@]})
     [ "${language}" == "" ] && language='en_US.UTF-8'

     # Copy locale in locale.conf
     echo "LANG=${language}" > /etc/locale.conf

     # Confirm that language was selected
     sed -i "s/^LANG=.*/LANG=${language}/" /root/.codecheck

     # Copy scripts to install in that language
     language=${language/_*/}
     for init_de in `ls -d /root/.install-* | sed 's|/root/\.install-\(.*\)|\1|'`
     do  ls    /root/.install-${init_de}/language/${language}/ &> /dev/null || language='en'
         cp -a /root/.install-${init_de}/language/${language}/* /root/.install-${init_de}/
     done
fi


### Comprobe if X11 keymap was selected ###

keymap=$(grep 'XKBMAP=' /root/.codecheck | cut -d '=' -f 2)
if   [ "${keymap// /}" == "_UNDEFINED_" ]
then keymap=$(dialog --stdout --no-tags --no-cancel --timeout 10             \
                     --backtitle "System keymap selection"                   \
                     --menu      "Select your keymap:" 15 40 10 ${keymaps[@]})

     # Set keymapping
     setxkbmap ${keymap}

     # Confirm that X11 keymap was selected
     sed -i "s/^XKBMAP=.*/XKBMAP=${keymap}/" /root/.codecheck
fi
